﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace Incident_Manager_PUCP
{
    public partial class frmRegistrarServicio : Form
    {
        /// <summary>
        /// Christian Fernández
        /// </summary>
        /// 
        
        //Patron Singleton para obtener la instancia del gestor cliente.
        private static GestorServicio gestorServicio = GestorServicio.ObtenerInstancia();


        public frmRegistrarServicio(){
            InitializeComponent();
            //this.lbTareasServicio.DataSource = listaTareas;
        }
                
        private void button1_Click(object sender, EventArgs e)
        {
            if (tbCodigo.Text == string.Empty) {
                MessageBox.Show("Debe ingresar un código");
                return;
            }
            if (tbNombre.Text == string.Empty) {
                MessageBox.Show("Debe ingresar un nombre");
                return;
            }

            Servicio servicio = new Servicio();

            servicio.setCodigo(tbCodigo.Text);
            servicio.setNombre(tbNombre.Text);

            servicio.setTipo(cbTipo.SelectedItem != null ? cbTipo.SelectedItem.ToString() : string.Empty);
            
            servicio.setHorarioCobertura(tbHorarioCobertura.Text);
            servicio.setTiempoRespuesta(tbTiempoRespuesta.Text);

            servicio.setModoAtencion(cbModoAtencion.SelectedItem != null ? cbModoAtencion.SelectedItem.ToString() : string.Empty);
            
            servicio.setTareasServicio(new List<String>());
            foreach (string tarea in lbTareasServicio.Items)
                servicio.getTareasServicio().Add(tarea);

            servicio.setInformacionAdicional(tbInformacionAdicional.Text);


            if (gestorServicio.registrarServicio(servicio)) {
                tbCodigo.Text = "";
                tbNombre.Text = "";

                cbTipo.SelectedValue = "";

                tbHorarioCobertura.Text = "";
                tbTiempoRespuesta.Text = "";

                cbModoAtencion.SelectedValue = "";

                lbTareasServicio.Items.Clear();

                tbInformacionAdicional.Text = "";
            }
            
            MessageBox.Show(this, gestorServicio.lastMsg);
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void toolTip1_Popup(object sender, PopupEventArgs e) {

        }

        //agregar tareas
        private void btnAddTareasServicio_Click(object sender, EventArgs e) {
            this.lbTareasServicio.Items.Add(this.tbTareasServicio.Text);
            this.tbTareasServicio.Text = "";
        }

        //eliminar tarteas
        private void lbTareasServicio_SelectedIndexChanged(object sender, EventArgs e) {
            this.lbTareasServicio.Items.Remove(this.lbTareasServicio.SelectedItem);
        }

        
    }
}
